Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2016, 07:43
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Составление регулярного выражения
Доброго времени суток. Помогите, пожалуйста, составить регулярное выражение, никак не получается Нужно разбить текст на массив, начиная от слова "Shape" и заканчивая двумя треугольными скобками. Должен получиться массив с 2-мя элементами.

<textarea id="text" style="display:block;width:400px; height:50px" name="" cols="" rows="">
Shape{
appearance Appearance{ 
maturial DEF Material #mat
Material{diffuseColor 1.0 1.0 1.0} 
texture ImageTexture{url "txt4.tga" }}
geometry IndexedFaceSet{
creaseAngle 3.14
coord DEF sea08 Coordinate{
point[0 0 0]
}
coordIndex[
2,1,0,-1,2,0,3]
texCoord TextureCoordinate{
point[]
}
texCoordIndex[
2,1,0,-1,2,0,3,-1,2,3,4,]
}
}
Shape{
appearance Appearance{ 
material DEF Material - Default
Material{diffuseColor 1.0 1.0 1.0} 
texture ImageTexture{url "dent5.tga" }}
geometry IndexedFaceSet{
creaseAngle 3.14
coord DEF sea08 Coordinate{
point[0 0 0]
}
coordIndex[
2,1,0,-1texCoord TextureCoordinate{
point[0 0]
}
texCoordIndex[
2,1,0,-1,2,0,3]
}
}
</textarea>
<input type="button" value="RegExp" onclick="RegExp_01()">

<script>
function RegExp_01(){
	var raw_data = document.getElementById('text').value; //читаем текст из поля
	var reg_exp = / /img;//регулярка
	var data_array = raw_data.match(reg_exp);
	console.log(JSON.stringify(data_array));

}

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2016, 10:27
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

фонарик,
<textarea id="text" style="display:block;width:400px; height:50px" name="" cols="" rows="">
Shape{
appearance Appearance{ 
maturial DEF Material #mat
Material{diffuseColor 1.0 1.0 1.0} 
texture ImageTexture{url "txt4.tga" }}
geometry IndexedFaceSet{
creaseAngle 3.14
coord DEF sea08 Coordinate{
point[0 0 0]
}
coordIndex[
2,1,0,-1,2,0,3]
texCoord TextureCoordinate{
point[]
}
texCoordIndex[
2,1,0,-1,2,0,3,-1,2,3,4,]
}
}
Shape{
appearance Appearance{ 
material DEF Material - Default
Material{diffuseColor 1.0 1.0 1.0} 
texture ImageTexture{url "dent5.tga" }}
geometry IndexedFaceSet{
creaseAngle 3.14
coord DEF sea08 Coordinate{
point[0 0 0]
}
coordIndex[
2,1,0,-1texCoord TextureCoordinate{
point[0 0]
}
texCoordIndex[
2,1,0,-1,2,0,3]
}
}
</textarea>
<input type="button" value="RegExp" onclick="RegExp_01()">

<script>
function RegExp_01(){
	var raw_data = document.getElementById('text').value; //читаем текст из поля
	var data_array = raw_data.split('Shape').slice(1);
	alert(JSON.stringify(data_array));
}

</script>

Вариант без regexp.

Последний раз редактировалось Dilettante_Pro, 22.06.2016 в 10:40.
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2016, 16:01
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Сообщение от Dilettante_Pro Посмотреть сообщение
Вариант без regexp.
К сожалению, такой вариант не подходит

Может еще кто вдогонку знает, можно ли в регулярке при поиске символов исключить определенный последовательный набор, слово определенное, короче говоря?
Например, ищем кусок текста [\s\S]+ Как искать текст, но только до слова, например "text"? Используя конструкцию исключения [^text] исключается не слово, а только набор символов
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2016, 18:46
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

фонарик,
Сообщение от фонарик
К сожалению, такой вариант не подходит
А что не подходит? результат или что без regexp?
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2016, 19:07
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Сообщение от Dilettante_Pro Посмотреть сообщение
А что не подходит? результат или что без regexp?
После 2х скобок и перед Shape может быть еще инфа, она не нужна, при резке без регулярки она попадет в массив. Поэтому, не устраивает не результат, а шаблон поиска. Нужна именно регулярка.

Все, составил регулярное выражение. Спасибо всем, кто пытался помочь

Последний раз редактировалось фонарик, 22.06.2016 в 19:17.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная проверка соответствия регулярного выражения. Tesla jQuery 5 15.02.2016 16:03
Формирование регулярного выражения spo jQuery 1 18.10.2013 21:36
Нужна помощь в составлении регулярного выражения voloxa89 jQuery 4 13.12.2012 22:43
Составление регулярного выражения nip Общие вопросы Javascript 12 18.10.2012 16:07
Ограничить длину строки с помощью регулярного выражения pro_xaoc Элементы интерфейса 2 07.08.2011 15:58