模式的第一次出現。如果我期待通過文字是這樣的:查找正則表達式
hello bob hello hello hello
我想找到的打招呼的第一個實例,並把它拿出來,所以我用這樣的
模式hello
當我擦除模式,這是課文是什麼
bob
,但我需要的是
bob hello hello hello
如何修改它只能找到該模式的第一次出現
模式的第一次出現。如果我期待通過文字是這樣的:查找正則表達式
hello bob hello hello hello
我想找到的打招呼的第一個實例,並把它拿出來,所以我用這樣的
模式hello
當我擦除模式,這是課文是什麼
bob
,但我需要的是
bob hello hello hello
如何修改它只能找到該模式的第一次出現
在OutSystems,通過擴展提供正則表達式的功能,所以我會假設你正在使用的Text
擴展。擴展代碼映射到.NET/Java代碼,對正則表達式方法的底層調用爲Replace(string input, string replacement)
,.NET和replaceAll(String replacement)
。這些都會替換給定輸入字符串上的所有正則表達式。
現在,多種方式爲您解決問題...
如果你想在字符串的開頭替換: 在你給的例子中,你好你有興趣在移除時也是在輸入字符串的開頭。在這種情況下,您可以使用正則表達式,如^hello
。
如果你想更換第一場比賽,在string中任何地方:如果你有興趣在替換第一次出現,但可以在輸入字符串的任何地方 ,那麼你可以寫這樣的表達式hello(.*)
並用作替換字符串$1
。在這種情況下,$1
將表示捕獲組(.*)
,其將包括所有進一步的出現hello。這適用於.NET和Java。當然,做事情的方式是既不漂亮,也沒有效率等等...
如果你想有更多的正則表達式功能:,您可以使用整合工作室下載和打開文本擴展和添加任何新的方法,您想要,雖然這個擴展包含在平臺中,並且可以通過升級來替代,但我建議創建自己的擴展並使用文本擴展名作爲模板。您可以創建一個非常類似於當前Replace
的擴展操作,但可能需要額外的計數參數或類似的參數。
您使用哪種語言?你有什麼嘗試? – 2013-04-22 17:07:59
我想這是紅寶石!:) – Kent 2013-04-22 17:09:26
@Kent相當狂野的猜測;) – 2013-04-22 17:11:09