2016-06-14 11 views
-2

Ich möchte von Zeichen nach einem String Zeichen zu finden: wordIch möchte Punkt nach String Regex übereinstimmen?

wordtsssrrggmnvk

Spiel t, Spiel s, Spiel s, ...

-(?<=word). Ich versuche, zu verwenden aber es funktioniert nicht.

+0

Welche Sprache verwenden Sie? Regex ist dafür nicht geeignet, da es für jedes Zeichen nach "Wort" suchen muss. Holen Sie sich die Teilzeichenfolge nach 'word' und teilen Sie sie dann in ein Zeichenfeld. – 4castle

+0

Nur Regex-Engines, die Quantifikatoren in Look-Behind unterstützen, scheinen hier zu funktionieren. '(? <= Wort. *).' funktioniert für mich in .NET – 4castle

+0

funktioniert nicht für mich –

Antwort

0

In Notepad ++, haben Sie die leistungsstarke Boost-Regex-Engine. Eine seiner Funktionen ist die Operatorunterstützung \G, mit der Sie nach erfolgreicher Übereinstimmung eine globale Suche (= mehrere Vorkommen) eines aufeinanderfolgenden Musters durchführen können. Ein sehr netter Operator, der von Perl kommt, ist \K, der den gesamten Text, der bisher in der aktuellen Regex-Iteration gefunden wurde, auslässt.

So müssen Sie

(?:\G(?!^)|word)\K. 

. Damit eine neue Zeile passen, überprüfen Sie die . eine neue Zeile entspricht Checkbox.

Erklärung:

  • (?:\G(?!^)|word) - das Ende der letzten erfolgreichen Spiel passt (\G(?!^)) oder die Zeichenfolge word
  • \K - lassen Sie den gefundenen Text (dh word)
  • . - Streichhölzer ein anderes Zeichen als ein Zeilenumbruch (LF). Hier

ist ein Test, bei dem jeweils gefundenen Zeichen mit einem Bindestrich vorangestellt wird (Ersatzmuster -$0):

enter image description here

+0

'(? <= Wort) .' wird nicht funktionieren, da es nur ein Char anders als eine Zeilenschaltung, die sofort ist vorangestellt mit 'word' Text. Wenn Sie "Wort" nur am Anfang einer Zeile anpassen müssen, verwenden Sie in der Regex "^ word". –

+0

Ich bin wirklich sehr dankbar, danke –

1

^word(.*) erfassen wird alles nach dem Wort

http://rubular.com/r/9tG61DCsry

Als @ 4castle metioned, erhalten den Teil und Split:

var word = "wordtsssrrggmnvk"; 

wordMatch = word.match(/^word(.*)/); 
charArray = wordMatch[1].split("") 

console.log(charArray) 
// ["t", "s", "s", "s", "r", "r", "g", "g", "m", "n", "v", "k"] 
+0

wirklich nicht funktionieren .. –

Verwandte Themen