.png)
У меня такой сценарий:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
Итак, мне нужно найти все слова, разделенные знаками.- = . "{
Я создал регулярное выражение для NOTEPAD++ для поиска и удаления тех слов, которые имеют знаки до и после (вся строка) без других слов, но оно не очень хорошее:
ПОИСК: (?!\w+[-."={])
ЗАМЕНИТЬ: (оставить пустым)
Ожидаемый результат должен быть:
other words
other words
other words
before words other words
other words
решение1
- Ctrl+H
- Найти то, что:
(?:^|[+=."{}-]+)(?:\w+[+=."{}-]+)+\h*
- Заменить:
LEAVE EMPTY
- проверить Обернуть вокруг
- проверить Регулярное выражение
- Replace all
Объяснение:
(?: # start non capture group
^ # beginning of line
| # OR
[+=."{}-]+ # 1 or more + = . " { } -
) # end group
(?: # start non capture group
\w+ # 1 or more word character
[+=."{}-]+ # 1 or more + = . " { } -
)+ # end group, may appear 1 or more times
\h* # 0 or more horizontal spaces
Скриншот:
решение2
Это написано на Python, оно загружает ваши тестовые данные из файла "data.txt" в том же каталоге.
import os, re
path = "./data.txt"
if os.path.isfile(path): #use local leader file
oFile = open(path)
strFile = oFile.read() #get old leaders
oFile.close()
else:
print("File Not Found")
def replace(line):
for i in line:
if ( i == '-' or i == '=' or i == '.' or i == '"' or i == '{' or i == '}'):
line = line.replace(i,"\n")#Delete \n and replace it with xyz to see
return line
lines = strFile.split("\n")
for line in lines:
answer = replace(line)
print(answer)
центр цикла данных horz true заголовок цикла данных пользовательские подписи шаблон заголовка цикла данных slideNum
решение3
Из вашего вопроса я понял, что вы хотите сопоставить все слова, но не разделяющие их специальные символы, верно?
[^-=."{}\r\n]+
Должно сработать. Он будет соответствовать всему, что не является вашими специальными символами - = . "{
или переносом строки.
Вы можете создать и протестировать регулярное выражение с помощью онлайн-инструмента, напримеррегулярное выражение101
Обновлять
Следующее регулярное выражение удаляет слова, как вы описали, а также конечные пробелы:([^\s]+[-=."{}\r\n][^\s]+\s*)+
Я успешно проверил это на вашем примере:
До:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
После:
other words
other words
other words
before words other words
other words