Найти заглавные буквы в тегах <p></p> с помощью регулярных выражений - PullRequest
0 голосов
/ 13 декабря 2011

Я хочу использовать регулярное выражение для захвата ТОЛЬКО заглавных символов в теге <p></p> html.

<p>I WANT TO GET THIS TEXT</p>

<p>I don't want to get this text because it has some Lower Case Characters</p>

Иногда документне содержит этого вообще.Иногда это там 3-5 раз.Документ содержит другой HTML в тегах <p></p>, которые я не хочу менять.Только теги абзаца, которые содержат ВСЕ заглавные символы, которые я хочу вернуть.

Я не очень знаком с регулярными выражениями, так что это озадачивает меня.Похоже, я должен быть в состоянии сделать что-то вроде этого: <p>[A-Z]</p>

Как только я найду текст в верхнем регистре, я хочу передать данные через функцию ProperCase и повторно вставить данные как <H3>тег.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Попробуйте это:

(<p>)([^a-z]+)(</p>)

Это оценивает:

  • true для <p>I WANT TO GET THIS TEXT</p>
  • true для <p>I DON'T WANT TO GET MIXED CASE TEXT 123.</p>
  • false для <p>I don't want to get this text because it has some Lower Case Characters</p>
0 голосов
/ 13 декабря 2011

ну я не знаком с visual-studio.но вы можете использовать приведенное ниже регулярное выражение:

(?<=<p>)[A-Z ]*(?=</p>)

тестирование с помощью grep:

kent$  echo "<p>I WANT TO GET THIS TEXT</p>"|grep -Po '(?<=<p>)[A-Z ]*(?=</p>)'   

output

I WANT TO GET THIS TEXT

, если есть некоторыестрочные буквы:

kent$  echo "<p>BIGBIG BIG and some small letters</p>"|grep -Po '(?<=<p>)[A-Z ]*(?=</p>)'

(output nothing)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...