第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在忽略撇號的同時匹配不完整的單引號?

如何在忽略撇號的同時匹配不完整的單引號?

PHP
白板的微信 2021-06-29 13:52:01
我正在嘗試匹配缺少結束單引號的文本中的句子(我使用的是 PHP)。對此的簡單解決方案是:~'[^']*$~但這并不能處理撇號。例如,在這些句子中'This is incomplete'This isn't incomplete.'  I said 'this is incomplete.   I said 'this isn't incomplete but I was wrong.我想匹配除第二個之外的所有其他人,第二個沒有遺漏其結束語。我曾嘗試使用否定前瞻來排除正確的閉合引號(例如,后面跟有空格、句點(或其他句尾標點符號)或行尾的位置,但我無法正確理解。(要忽略的撇號情況是撇號后面跟有 s、l、r、d 或 v 的任何情況——讓我們忽略復數所有格后面可以跟一個空格的事實,因為這會讓事情變得太困難。)
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

人們怎么知道I said 'this isn't incomplete but I was wrong.引用部分應該在incomplete. 用普通手段不是不可能。

假設你處理單行字符串,我相當簡單的想法是

\B'(.*?)'\B|\B'(.*[^'\s])

并替換為'$1$2'在 regex101 上查看此演示

這個想法是

  • \B'(.*?)'\B使用從前面沒有單詞字符\B 非單詞邊界)的單引號開始的任何“完整”引號,直到后面沒有單詞字符的單引號并將內容捕獲到$1.

  • \B'(.*[^'\s])查找'前面沒有單詞字符的其余部分并捕獲任何內容,直到最后一個不是空格\s或單引號 to 的字符$2。

  • 最后更換已經完成$1和uncomplete$2'$1$2'。有點這種想法。

遠非完美,但希望有所幫助。


查看完整回答
反對 回復 2021-07-02
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

您可以使用

preg_match("~^(?:[^']|\b'\b)*(?!\b'\b)'(?:[^']|\b'\b)*$~", $s)

查看正則表達式演示

正則表達式詳情

  • ^ - 字符串的開始

  • (?:[^']|\b'\b)*- 0 次或多次重復任何字符,但'或任何'用單詞字符括起來的字符

  • (?!\b'\b)'-'不包含字符字符

  • (?:[^']|\b'\b)*- 0 次或多次重復任何字符,但'或任何'用單詞字符括起來的字符

  • $ - 字符串的結尾。

正則圖

http://img1.sycdn.imooc.com//60debe160001505908100142.jpg

http://img1.sycdn.imooc.com//60debe1e0001125f04420148.jpg

查看完整回答
反對 回復 2021-07-02
  • 2 回答
  • 0 關注
  • 259 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號