[英]PHP REGEX delete brackets and text in brackets
需要刪除括號和文本。 現在,它正在運行。 刪除從括號開始的所有文本。 我的代碼:
$lines = preg_replace("/\(([^\d]+)/", '', $lines);
例如,文字:
Some random words (word1 / word2 / word3) aaaa
代碼也會刪除括號后的所有文本,
Some random words
但我需要做的是(它看起來應該是什么樣的):
Some random words aaaa
/\([^()]*\)/
\\(
- 開口支架 [^()]*
- 盡可能多的字符,不是括號 \\)
- 關閉括號 您可以選擇在末尾刪除一個空格( /\\([^()]*\\) ?/
),這樣就不會有兩個空格來進行刪除。
請注意,這不會處理嵌套括號的情況,如:
foo (bar (baz) quiz)
要做到這一點,你必須更有創意:
(?<no_brackets>[^()]*){0}(?<balanced_brackets>\(\g<no_brackets>\)|\(\g<no_brackets>\g<balanced_brackets>\g<no_brackets>\))
你在表達式的末尾缺少一個額外的\\)
。 因此,您的表達式將在找到一個開括號並繼續運行時開始匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.