2017-07-30 9 views
1

大きなテキストがあり、一致するコンテンツのみを保持する必要がある場合、どうすればよいですか?例えばすべてのコンテンツを削除しますが一致したままにする

、私はこのようなテキストがある場合:

asdas8Isd8m8Td8r 
asdia8y8dasd 
asd8is88n8gd 
asd8t8od8lsdas 
as9ea9ad8r1n88r8e87g6765ejasdm8x 

をそして、この正規表現を使用します。すべての文字番号の後にグループに[0-9]([a-z])をして\1と交換させていただきますrepaceすべて(数)(手紙)へ(手紙)(と私は残りの部分を削除し、マッチした文字でのみ滞在したい場合)?...

ImTr 
y 
ing 
tol 
earnregex 

どのようにすることができますに、このテキストを変換します私はこのテキストをグループ化して置き換え、残りを削除しますか?

また、一致していないものはすべて削除しますか?この場合 、テキストに変換:

8I8m8T8r 
8y8d 
8i8n8g 
8t8o8l 
9e9a9r1n8r7g5e8x 

私はすべてに一致することができることが[0-9]([a-z])ではないでしょうか?

ありがとうございます! :D

+0

あなたの文言を改善する必要があります。実際に何を意味するのかを理解することは非常に難しいです。そうすればより正確な答えを出すことができます。 – SkryptX

+0

2行目に 'y'と' yd'を入れないのですか? –

+0

すべてのテキストを削除しようとしていますが、一致しているだけです... – Emanuel

答えて

2

は、次の正規表現を使用することがあります。

(?i-s)[0-9]([a-z])|. 

(?{1}$1:)と交換してください。

一致しないもの以外のすべてを削除するには、同じ正規表現で置換する(?{1}$0:)を使用します。

詳細

  • (?i-s) - インライン改質剤は、大文字と小文字を区別しないモードをオンにし、
  • [0-9]([a-z])(改行一致しない.)DOTALLモードをオフ - ASCII数字と任意のASCII文字をグループ1に捕捉される(後にまたは\1という文字列置換パターンの逆参照と呼ばれる)
  • | - または
  • . - 改行文字以外の任意の文字。

交換の詳細

  • (?{1} - 条件付き交換の開始:グループ1は、その後、マッチした場合...
    • $1 - グループ1の内容(または全部一致した場合$0逆参照を使用)
    • : - else ... nothing
  • ) - 条件付き置換パターンの最後。

enter image description here

+1

ありがとう、ガイ! :D – Emanuel

関連する問題