12
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi không muốn preg_match_all ... bởi vì trường biểu mẫu chỉ cho phép các số và chữ cái ... chỉ tự hỏi cú pháp đúng là gì ...
Không có gì lạ mắt ... chỉ cần biết cú pháp đúng cho câu lệnh PREG_MATCH tìm kiếm các số và chữ cái. Cái gì đó như
preg_match['/^[[^.]+]\.[[^.]+]\.com$/', $unit]
Nhưng điều đó cũng không tìm kiếm các con số ....
Hỏi ngày 5 tháng 4 năm 2011 lúc 14:14Apr 5, 2011 at 14:14
user517593user517593user517593
2.7734 huy hiệu vàng16 Huy hiệu bạc14 Huy hiệu đồng4 gold badges16 silver badges14 bronze badges
3
Nếu bạn chỉ muốn đảm bảo một chuỗi chỉ chứa các ký tự chữ và số. A-Z, A-Z, 0-9 Bạn không cần sử dụng các biểu thức thông thường.
Sử dụng
0
0Ví dụ từ tài liệu:
Ví dụ trên sẽ xuất ra:
The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consist of all letters or digits.
Đã trả lời ngày 5 tháng 4 năm 2011 lúc 14:20Apr 5, 2011 at 14:20
JacobjacobJacob
8.1831 Huy hiệu vàng22 Huy hiệu bạc29 Huy hiệu đồng1 gold badge22 silver badges29 bronze badges
1
if[preg_match["/[A-Za-z0-9]+/", $content] == TRUE]{
} else {
}
Matt
73.2K26 Huy hiệu vàng149 Huy hiệu bạc179 Huy hiệu đồng26 gold badges149 silver badges179 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2011 lúc 14:20Apr 5, 2011 at 14:20
JacobjacobVish
8.1831 Huy hiệu vàng22 Huy hiệu bạc29 Huy hiệu đồng10 gold badges40 silver badges73 bronze badges
2
Matt
73.2K26 Huy hiệu vàng149 Huy hiệu bạc179 Huy hiệu đồng
preg_match["/[[a-zA-Z0-9]]/", $formContent, $result];
print_r[$result];
Vishvish
4.50810 Huy hiệu vàng40 Huy hiệu bạc73 Huy hiệu đồng
Tuy nhiên, nếu bạn muốn khớp nhiều hơn 1, thì bạn sẽ cần, tuy nhiên, cung cấp cho chúng tôi một số mã và chúng tôi có thể giúp tốt hơn.20 gold badges147 silver badges171 bronze badges
mặc dù, trong khi đó:Apr 5, 2011 at 14:18
Hôm nay, tôi muốn chỉ cho bạn một cách, làm thế nào bạn có thể kiểm tra một chuỗi cho một số chữ cái, số hoặc ký tự nhất định.
Ví dụ, một khu vực của ứng dụng sẽ kiểm tra tên người dùng có thể chỉ chứa một số ký tự nhất định.
Đầu tiên, chúng tôi muốn xem xét mã sau:
if [!preg_match["#^[a-zA-Z0-9]+$#", $text]] { echo 'String also contains other characters.'; } else { echo 'String only contains numbers and letters.'; }
Ở đây chúng tôi muốn kiểm tra xem chuỗi $ văn bản chỉ bao gồm các chữ cái [A đến Z và A đến Z] và số [chữ số 0 đến 9]. Đối với điều này, chúng tôi sử dụng một biểu thức thông thường và preg_match. Là một tham số đầu tiên, chúng tôi vượt qua biểu thức chính quy, trong đó biểu thức chính quy thực được viết giữa " # và #".
Biểu tượng ^ đại diện cho sự khởi đầu của chuỗi. $ Là viết tắt của cuối chuỗi. Ở giữa, tất cả các ký tự được cho phép, được xác định trong lớp ký tự giữa các dấu ngoặc vuông. Các nhân vật trong lớp này có thể xảy ra thường xuyên như họ muốn. Điều này được biểu thị bằng dấu + ở cuối. Trong lớp ký tự, chúng tôi đã xác định các chữ cái chữ thường A-Z, chữ cái trên A-Z và các chữ số 0-9.
Cũng kiểm tra các ký tự khác như các điểm nhấn
Đương nhiên, các điểm nhấn không được bao gồm trong lớp nhân vật A-Z hoặc A-Z. Nếu chúng ta muốn cho phép những nhân vật này, chúng ta phải viết riêng chúng:
if [!preg_match["#^[a-zA-Z0-9äöüÄÖÜ]+$#", $text]] { echo 'String also contains other characters'; } else { echo 'String only contains letters and digits.'; }
Vì vậy, chúng tôi có thể thêm bất kỳ nhân vật nào khác vào lớp nhân vật của chúng tôi để kiểm tra các ký tự này.
Kiểm tra các chữ cái nói chung
Cho đến nay, chúng tôi đã xác định các bộ ký tự bằng cách viết từng chữ cái & nbsp; rõ ràng vào lớp nhân vật của chúng tôi. Cuối cùng, không thể viết tất cả các chữ cái có thể tưởng tượng được vào biểu thức thông thường của chúng tôi. Ví dụ sau đây cho thấy cách chúng ta có thể xử lý tình huống này. è, ø, é or ă? Finally, it is not possible to write all conceivable letters to our regular expression. The following example shows a way of how we can handle this situation.
$text = "abcABCäöüÄÖÜßéèâø"; if [preg_match["#^\p{L}+$#u", $text]] { echo 'String contains arbitrary letters.'; }
L là viết tắt của một chữ cái tùy ý, \ p cho một ký tự có thuộc tính được xác định trong dấu ngoặc xoăn phía sau và U là viết tắt của Unicode. Vì vậy, biểu thức chính quy này đang kiểm tra tùy ý, & nbsp; tùy ý & nbsp; các ký tự unicode lặp lại. Regex này có thể được sử dụng kể từ Php phiên bản 5.1.0.
Sử dụng L, chúng tôi đang cho phép viết thường cũng như chữ viết hoa. Nếu bạn chỉ muốn kiểm tra các chữ cái chữ thường hoặc chữ hoa, bạn có thể sử dụng LL [chữ cái chữ thường] hoặc LU [chữ cái chữ hoa] thay vì L.
Cho phép không gian
Thêm ký tự vào bộ thậm chí áp dụng cho không gian. Trong ví dụ này, chúng tôi đã thêm một không gian vào lớp ký tự:
if [!preg_match["#^[a-zA-Z0-9äöüÄÖÜ ]+$#", $text]] { echo 'String also contains other characters.'; } else { echo 'String only contains letters, digits and spaces.'; }
Với điều này, cũng có các chuỗi chứa chỗ trống được cho phép.
Điểm, giá đỡ và các ký tự đặc biệt khác
Một số nhân vật có một ý nghĩa đặc biệt trong một biểu thức chính quy. Chúng bao gồm, ví dụ, điểm hoặc dấu ngoặc. Nếu chúng ta muốn đưa các nhân vật như vậy vào lớp nhân vật của mình, chúng ta phải viết điều này:
if [!preg_match["#^[a-zA-Z0-9äöüÄÖÜ \.\]]+$#", $text]] { echo 'String also contains other characters.'; }
Với \ chúng ta có thể thoát khỏi các ký tự tương ứng. Điều đó có nghĩa là: với \ chúng tôi nói rằng nhân vật tiếp theo nên được hiểu là một nhân vật và không phải là một hướng dẫn thông thường. Trong ví dụ, với điều này, chúng tôi thêm một điểm và một khung vuông vào lớp nhân vật của chúng tôi. lớp nhân vật.
Nhưng điều gì sẽ xảy ra nếu chúng ta cũng muốn thêm \ làm nhân vật vào lớp của chúng ta? Nó đơn giản. Ngoài ra, ký tự \ có thể được thoát ra bằng việc viết một \ trước mặt nó. Đơn giản chỉ cần viết \\.
CType-Functions
Chắc chắn, thường được sử dụng các lớp ký tự, bạn có thể dễ dàng sử dụng các hàm CTYPE của PHP. & NBSP; Thêm về chủ đề này trong hướng dẫn chuỗi CTYPE của tôi. Ưu điểm của các hàm CTYPE là chúng tôi không cần biểu thức chính quy và chúng có hiệu suất tốt hơn.