正則表達式,在自己的,不要做東西,他們接受字符串。像
[fF][iI][rR][sS][tT][nN][aA][mM][Ee]
regex將接受任何使用情況下,字符串「名字」。然後,用您選擇的語言編寫替換操作來替換用'firstName'識別的字符串。您可能會發現,您選擇的正則表達式實現具有不區分大小寫的匹配功能,可以簡化正則表達式。
你的問題是在不修改名字的情況下,當它不是在你的表達中的正確位置 - 即你如何改變你的例子中FirstName的第一次出現,但不是第二次。在sed中很容易,因爲默認情況下,只有在第一次匹配正則表達式時纔會進行替換。在VBA中我沒有任何線索。
是您的規則:
- 變換情況只是第一場比賽;
- 只將變換大小寫在字符串的第一個左邊=符號;
- 只有當匹配不在裏面時才轉換case「」;
?
如果第三個可能有問題,如果可以嵌套。正則表達式無法真正處理任意深度的括號嵌套(無論用什麼字符括起來),儘管有些實現方法可以解決這個限制。但是,如果您發現自己試圖編寫正則表達式來匹配特定數量的匹配括號內的字符串,則可以確定您使用的是錯誤的工具。
編輯:在第三的情況下修改我的正則表達式來
.*[^"].*[fF][iI][rR][sS][tT][nN][aA][mM][Ee]
應該匹配不是由「
太棒了。這似乎有伎倆。非常感謝。 – mwolfe02 2010-03-06 16:32:00
不客氣mwolfe02。 – 2010-03-06 16:37:38
我沒有在我的問題中指定這個,但我需要避免替換出現在另一個單詞內的單詞。我通過添加\ b來檢查'文字邊界'來完成這項工作。正在使用的正則表達式現在是:(?im)\ bFirstName \ b(?=([^「] *」[^「] *」)* [^「] * $) – mwolfe02 2010-03-06 16:55:27