Copy Code
TOPIC
	about_Regular_Expressions

SHORT DESCRIPTION
	Describes regular expressions in Windows PowerShell.
 

LONG DESCRIPTION
	Windows PowerShell supports the following regular expression characters.


		Format   Logic							Example
		-------- -------------------------------  -----------------------
		value	Matches exact characters		 "book" -match "oo"
				 anywhere in the original value.

		.		Matches any single character.	"copy" -match "c..y"

		[value]  Matches at least one of the	"big" -match "b[iou]g"
				 characters in the brackets.

		[range]  Matches at least one of the	"and" -match "[a-e]nd"
				 characters within the range.
				 The use of a hyphen (–) allows 
				 you to specify an adjacent 
				 character.

		[^]	Matches any characters except	"and" -match "[^brt]nd"
				 those in brackets.

		^		Matches the beginning			"book" -match "^bo"
				 characters.

		$		Matches the end characters.	"book" -match "ok$"

		*		Matches any instances			"baggy" -match "g*"
				 of the preceding character.

		?		Matches one instance			 "baggy" -match "g?"
				 of the preceding character.

		\		Matches the character that	 "Try$" -match "Try\$"
				 follows as an escaped character.


	Windows PowerShell supports the character classes available in 
	Microsoft .NET Framework regular expressions.


		Format   Logic							Example
		-------- -------------------------------  -----------------------
		\p{name} Matches any character in the	 "abcd defg" -match "\p{Ll}+"
				 named character class specified 
				 by {name}. Supported names are 
				 Unicode groups and block 
				 ranges such as Ll, Nd, 
				 Z, IsGreek, and IsBoxDrawing.
 
		\P{name} Matches text not included in	 1234 -match "\P{Ll}+"
				 the groups and block ranges 
				 specified in {name}.
 
		\w	 Matches any word character.	"abcd defg" -match "\w+"
				 Equivalent to the Unicode		(this matches abcd)
				 character categories [\p{Ll}
				 \p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. 
				 If ECMAScript-compliant behavior 
				 is specified with the ECMAScript 
				 option, \w is equivalent to 
				 [a-zA-Z_0-9].
 
		\W	 Matches any nonword character.   "abcd defg" -match "\W+"
				 Equivalent to the Unicode		(This matches the space)
				 categories [^\p{Ll}\p{Lu}\p{Lt}
				 \p{Lo}\p{Nd}\p{Pc}].
 
		\s	 Matches any white-space		"abcd defg" -match "\s+"
				 character.  Equivalent to the 
				 Unicode character categories 
				 [\f\n\r\t\v\x85\p{Z}].
 
		\S	 Matches any non-white-space	"abcd defg" -match "\S+"
				 character. Equivalent to the 
				 Unicode character categories 
				 [^\f\n\r\t\v\x85\p{Z}].
 
		\d	 Matches any decimal digit.	 12345 -match "\d+"
				 Equivalent to \p{Nd} for 
				 Unicode and [0-9] for non-
				 Unicode behavior.
 
		\D	 Matches any nondigit.			"abcd" -match "\D+"
				 Equivalent  to \P{Nd} for 
				 Unicode and [^0-9] for non-
				 Unicode behavior.
 

	Windows PowerShell supports the quantifiers available in .NET Framework
	regular expressions. The following are some examples of quantifiers.


		Format   Logic							Example
		-------- -------------------------------  -----------------------
		*		Specifies zero or more matches;  "abc" -match "\w*"
				 for example, \w* or (abc)*. 
				 Equivalent to {0,}.
  
		+		Matches repeating instances of   "xyxyxy" -match "xy+"
				 the preceding characters.

		?		Specifies zero or one matches;   "abc" -match "\w?"
				 for example, \w? or (abc)?. 
				 Equivalent to {0,1}.
 
		{n}	Specifies exactly n matches;  "abc" -match "\w{2}"
				 for example, (pizza){2}. 
	
		{n,}	 Specifies at least n matches; "abc" -match "\w{2,}"
				 for example, (abc){2,}. 
	
		{n,m}	Specifies at least n, but no	 "abc" -match "\w{2,3}"
				 more than m, matches. 


	All the comparisons shown in the preceding table evaluate to true.


	Notice that the escape character for regular expressions, a backslash (\),
	is different from the escape character for Windows PowerShell. The
	escape character for Windows PowerShell is the backtick character (`) 
	(ASCII 96).


	For more information, see the "Regular Expression Language Elements" topic
	in the Microsoft Developer Network (MSDN) library 
	at http://go.microsoft.com/fwlink/?LinkId=133231. 


SEE ALSO
	about_Comparison_Operators
	about_Operators