Knowledge (XXG)

Delimiter

Source 📝

42: 631:
files, for example, field collision can occur whenever an author attempts to include a comma as part of a field value (e.g., salary = "$ 30,000"), and record delimiter collision would occur whenever a field contained multiple lines. Both record and field delimiter collision occur frequently in text
1303:
is a programming and systems administration technique that also helps to avoid delimiter collision in some circumstances. This technique is contrasted from the other approaches described above because it is more complicated, and therefore not suitable for small applications and simple data storage
1040:
is a special type of delimiter that is specifically designed to resist delimiter collision. It works by allowing the author to specify a sequence of characters that is guaranteed to always indicate a boundary between parts in a multi-part message, with no other possible interpretation.
667:
Because delimiter collision is a very common problem, various methods for avoiding it have been invented. Some authors may attempt to avoid the problem by choosing a delimiter character (or sequence of characters) that is not likely to appear in the data stream itself. This
619:
is a problem that occurs when an author or programmer introduces delimiters into text without actually intending them to be interpreted as boundaries between separate regions. In the case of XML, for example, this can occur whenever an author attempts to specify an
910:
In contrast to escape sequences and escape characters, dual delimiters provide yet another way to avoid delimiter collision. Some languages, for example, allow the use of either a single quote (') or a double quote (") to specify a string literal. For example, in
1052:, or some other distinguishing mark. Alternatively, the content may be scanned to guarantee that a delimiter does not appear in the text. This may allow the delimiter to be shorter or simpler, and increase the human readability of the document. ( 672:
approach may be suitable, but it necessarily depends on a correct guess of what will appear in the data stream, and offers no security against malicious collisions. Other, more formal conventions are therefore applied as well.
960:
produces the desired output without requiring escapes. Like regular escaping it can, however, become confusing when many quotes are used. The code to print the above source code would look more confusing:
177:, for example, is an alternate method (without the use of delimiters) that uses a length field at the start of a data stream to specify the number of characters that the data stream contains. 681:
The ASCII and Unicode character sets were designed to solve this problem by the provision of non-printing characters that can be used as delimiters. These are the range from ASCII 28 to 31.
1044:
The delimiter is frequently generated from a random sequence of characters that is statistically improbable to occur in the content. This may be followed by an identifying mark such as a
1490:
This prevents delimiter collision and ensures that incompatible characters will not appear inside the HTML code, regardless of what characters appear in the original (decoded) text.
164: 1908: 1390: 1965: 128: 635:
In some contexts, a malicious user or attacker may seek to exploit this problem intentionally. Consequently, delimiter collision can be the source of security
414: 848:
Escape sequences are similar to escape characters, except they usually consist of some kind of mnemonic instead of just a single character. One use is in
2063: 1992: 1947: 233:
Bracket delimiters, also called block delimiters, region delimiters, or balanced delimiters, mark both the start and end of a region of text.
2191: 2165: 2047: 2021: 1979: 1891: 1865: 1831: 1797: 1771: 1606: 1254:. A here document starts by describing what the end sequence will be and continues until that sequence is seen at the start of a new line. 894:
One drawback of escape sequences, when used by people, is the need to memorize the codes that represent individual characters (see also:
403:
Historically, computing platforms have used certain delimiters by convention. The following tables depict a few examples for comparison.
1024:, which allow any convenient character to act as a delimiter. Although this method is more flexible, few languages support it. Perl and 2345: 1308:, to ensure that delimiter or other significant characters do not appear in transmitted data. The purpose is to prevent multilayered 2287: 2258: 2228: 2140: 2111: 2084: 1745: 1720: 1687: 1661: 1635: 1424:
Alternatively, any encoding could be used that doesn't include characters that have special meaning in the context, such as base64:
1288:
It's very hard to encode a string with "certain characters". Newlines, commas, and other characters can cause delimiter collisions.
1552: 1153:
The syntax is flexible enough to specify match operations with alternate delimiters, making it easy to avoid delimiter collision:
627:
In most file types there is both a field delimiter and a record delimiter, both of which are subject to collision. In the case of
943:
In contrast to escape sequences and escape characters, padding delimiters provide yet another way to avoid delimiter collision.
2340: 969:"print ""Nancy said """"Hello World!"""" to the crowd.""" 372: 931:
produces the desired output without requiring escapes. This approach, however, only works when the string does not contain
2311: 1247: 1238:
allows the inclusion of arbitrary content by describing a special end sequence. Many languages support this including
1089: 1025: 899: 640: 262: 1509: 1342:
in which the VIEWSTATE value contains characters that are incompatible with the delimiters of the HTML tag itself:
895: 817: 2335: 2330: 636: 201: 66: 979:
In contrast to dual delimiters, multiple delimiters are even more flexible for avoiding delimiter collision.
591: 97: 85:. Another example of a delimiter is the time gap used to separate letters and words in the transmission of 628: 355: 197: 82: 46: 137: 816:
text can be rendered unreadable when littered with numerous escape characters, a problem referred to as
58: 1524: 1327:
web development technology, and is closely associated with the "VIEWSTATE" component of that system.
1021: 656: 2315: 1383: 222: 101: 1934: 1095: 824: 219: 215:
fname,lname,age,salary nancy,davolio,33,$ 30000 erin,borakova,28,$ 25250 tony,raphael,35,$ 28700
1909:"Jakarta Server Pages Specification, Version 4.0akarta Server Pages Specification, Version 4.0" 2283: 2254: 2224: 2187: 2161: 2136: 2107: 2080: 2043: 2017: 1959: 1887: 1861: 1827: 1793: 1767: 1741: 1716: 1683: 1657: 1631: 1602: 1504: 1243: 471: 338: 1778:
references C-style programming languages prominently featuring curly brackets and semicolons.
1456: 1309: 947:, for example, uses double quotes as delimiters. This is similar to escaping the delimiter. 833:
they require a mechanism to "escape the escapes" when not intended as escape characters; and
809: 797: 760: 2307: 1817: 1514: 1113:
For example, a simple match operation may be specified in Perl with the following syntax:
800:
solves the problem of both field and record delimiters that appear in a text data stream.
739: 578: 265:
programming language syntax is cited as recognizable primarily by its use of parentheses.
185:
Delimiters may be characterized as field and record delimiters, or as bracket delimiters.
2280:
Developing and Implementing Web Applications with Visual C# . NET and Visual Studio . NET
107: 1544: 2247: 1854: 1839: 1519: 1313: 1300: 1073: 849: 793: 781: 718: 556: 321: 209: 174: 131: 35: 2324: 2101: 2011: 1573: 1416:"BookTitle:Nancy doesn't say "Hello World!" anymore." 1235: 1061: 652: 621: 1335:
The following simplified example demonstrates how this technique works in practice.
1291:
By using a special end sequence all manner of characters are allowed in the string.
193:
Field delimiters separate data fields. Record delimiters separate groups of fields.
1613:
describing the method in Hollerith notation under the Fortran programming language.
1077: 944: 836:
although easy to type, they can be cryptic to someone unfamiliar with the language.
723:
End of file. Or between a concatenation of what might otherwise be separate files.
389: 31: 17: 812:. From a language design standpoint, these are adequate, but they have drawbacks: 1821: 643:. Malicious users can take advantage of delimiter collision in languages such as 1549:
Federal Standard 1037C - Telecommunications: Glossary of Telecommunication Terms
1447:"Qm9va1RpdGxlOk5hbmN5IGRvZXNuJ3Qgc2F5ICJIZWxsbyBXb3JsZCEiIGFueW1vcmUu" 450: 205: 170: 93: 70: 30:
This article is about delimiters in computing. For delimiters in human use, see
1482:"BookTitle:Nancy%20doesn%27t%20say%20%22Hello%20World!%22%20anymore." 1164:'Nancy said "http://Hello/World.htm" is not a valid address.' 41: 1708: 86: 62: 2294:(describes the use of Base64 encoding and VIEWSTATE inside HTML source code) 1320: 1049: 560: 549: 511: 493: 1654:
Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools
1386:, and would therefore not work properly in a "real world" deployed system. 1299:
Although principally used as a mechanism for text encoding of binary data,
1274:
It's very hard to encode a string with "certain characters".
1339: 1080:
as a means of specifying boundaries between independent regions in text.
955:"Nancy said ""Hello World!"" to the crowd." 169:
Delimiters represent one of various means of specifying boundaries in a
49:(CSV) text file. The commas (shown in red) are used as field delimiters. 1393:
can be used. In this case """ stands in for the double-quote:
1324: 688: 573: 538: 521: 506: 501: 304: 279: 258: 2207: 1983: 1938: 1277:
Newlines, commas, and other characters can cause delimiter collisions.
2221:
Internet Security: Cryptographic Principles, Algorithms and Protocols
1996: 1951: 1913: 1305: 564: 525: 61:
for specifying the boundary between separate, independent regions in
27:
Characters that specify the boundary between regions in a data stream
1098:, alternate delimiters may also be used to simplify the syntax for 1012:
qq(Nancy doesn't want to say "Hello World!" anymore.)
1003:
qq@Nancy doesn't want to say "Hello World!" anymore.@
994:
qq^Nancy doesn't want to say "Hello World!" anymore.^
1499: 1304:
formats. The technique employs a special encoding scheme, such as
568: 497: 467: 74: 40: 1251: 1107: 1057: 1045: 983: 912: 853: 821: 648: 543: 533: 529: 2265:(an example usage of ASCII armoring in encryption applications) 2235:(an example usage of ASCII armoring in encryption applications) 883:"Nancy said \"Hello World!\" to the crowd." 1239: 644: 2054:
describing solutions for embedded-delimiter problems p. 472.
2064:
Discussion on ASCII Delimited Text vs CSV and Tab Delimited
1124:'Nancy said "Hello World!" to the crowd.' 923:'Nancy said "Hello World!" to the crowd.' 744:
Between sections of data. Not needed in simple data files.
830:
text becomes difficult to parse through regular expression
2158:
Computational Linguistics and Intelligent Text Processing
1072:
Some programming and computer languages allow the use of
864:"Nancy said \x22Hello World!\x22 to the crowd." 852:
that include a doublequote (") character. For example in
96:, delimiters are often used to specify the scope of an 1812: 1810: 1628:
Progress in Standardization in Health Care Informatics
808:
One method for avoiding delimiter collision is to use
2160:. Oxford Oxfordshire: Oxford University Press. 2001. 1898:
Describes single-line and multi-line comments. p. 72.
140: 110: 45:
A stylistic depiction of values inside of a so-named
1188:# match using alternate regular expression delimiter 130:") and as a pair of opposing-looking symbols (e.g., 2246: 1853: 158: 122: 1703: 1701: 1699: 786:Between fields of a record, or members of a row. 291:Brackets (commonly used to denote a subscript). 100:, and can occur both as isolated symbols (e.g., 2186:. Oxford Oxfordshire: Oxford University Press. 2042:. Oxford Oxfordshire: Oxford University Press. 2016:. Oxford Oxfordshire: Oxford University Press. 1886:. Oxford Oxfordshire: Oxford University Press. 1860:. Oxford Oxfordshire: Oxford University Press. 1826:. Oxford Oxfordshire: Oxford University Press. 1792:. Oxford Oxfordshire: Oxford University Press. 1766:. Oxford Oxfordshire: Oxford University Press. 1601:. Oxford Oxfordshire: Oxford University Press. 236:Common examples of bracket delimiters include: 1389:To store arbitrary text in an HTML attribute, 1020:all produce the desired output through use of 839:they do not protect against injection attacks 1804:Describes syntax and delimiters used in HTML. 8: 2273: 2271: 2077:Automating InDesign with Regular Expressions 1872:Describes XML processing instruction. p. 21. 1365:"BookTitle:Nancy doesn't say " 1224:# same as previous, but different delimiter. 415:Comparison of programming languages (syntax) 153: 141: 1964:: CS1 maint: numeric names: authors list ( 1206:# same as previous, but different delimiter 975:Configurable alternative quoting delimiters 1940:The set of control characters for ISO 646 1621: 1619: 139: 109: 2172:Describes whitespace delimiters. p. 258. 1319:This technique is used, for example, in 683: 476: 419: 238: 1536: 1338:The first code fragment shows a simple 827:, leading to sequences such as "\/\/"); 2249:Open Source for Windows Administrators 1957: 200:uses a comma as the delimiter between 1980:American National Standards Institute 1856:Sams Teach Yourself Xml in 10 Minutes 1738:Computer-Aided Reasoning: An Approach 651:to deploy such well-known attacks as 7: 2028:Describes use of control-z. p. 156, 208:indicator as the delimiter between 159:{\displaystyle \langle a,b\rangle } 73:. An example of a delimiter is the 796:as a field separator and ASCII 30 25: 2135:. Javvin Technologies Inc. 2005. 2118:In Ruby, these are indicated as 1764:Explorations in Computer Science 1382:This first code fragment is not 820:(due to use of \ to escape / in 392:to specify language boundaries. 1680:Programming Language Pragmatics 1555:from the original on 2013-03-05 375:in some programming languages. 1652:Friedl, Jeffrey E. F. (2002). 1: 2208:Perl operators and precedence 2184:Mastering Regular Expressions 2040:Mastering Regular Expressions 875:produces the same output as: 57:is a sequence of one or more 2100:Yukihiro, Matsumoto (2001). 1715:(Third ed.). O'Reilly. 1626:de Moor, Georges J. (1993). 1257:Here is an example in perl: 736:INFORMATION SEPARATOR THREE 2312:The Art of Unix Programming 1985:ASCII graphic character set 1711:; Orwant, Jon (July 2000). 1678:Scott, Michael Lee (1999). 1090:Regular expression examples 900:numeric character reference 715:INFORMATION SEPARATOR FOUR 460:Field and Record delimiters 225:using the CSV file format. 189:Field and record delimiters 77:character, which acts as a 2362: 2133:Network Protocols Handbook 1510:Delimiter-separated values 1148:# match one or more vowels 1087: 939:Padding quoting delimiters 935:types of quotation marks. 896:character entity reference 818:leaning toothpick syndrome 778:INFORMATION SEPARATOR ONE 757:INFORMATION SEPARATOR TWO 29: 2346:String (computer science) 2245:Gross, Christian (2005). 2120:general delimited strings 1788:Dilligan, Robert (1998). 1597:Rohl, Jeffrey S. (1973). 1130:# specify a target string 1084:Regular expression syntax 1068:Whitespace or indentation 2182:Friedl, Jeffrey (2006). 2079:. O'Reilly. p. 11. 2038:Friedl, Jeffrey (2006). 2013:Posix Programmer's Guide 1882:Cabrera, Harold (2002). 1790:Computing in the Web Age 1461: 1426: 1395: 1344: 1259: 1155: 1115: 988: 963: 949: 917: 877: 858: 765:End of a record or row. 447:doublequote, singlequote 337:commonly used to denote 320:commonly used to denote 218:This specifies a simple 67:mathematical expressions 2253:. Charles River Media. 2223:. John Wiley and Sons. 2010:Lewine, Donald (1991). 1884:C# for Java Programmers 1736:Kaufmann, Matt (2000). 1545:"Definition: delimiter" 1476:"__VIEWSTATE" 1441:"__VIEWSTATE" 1410:"__VIEWSTATE" 1359:"__VIEWSTATE" 1285:This code would print: 906:Dual quoting delimiters 548:none (except in CP/M), 356:processing instructions 2341:Programming constructs 2075:Kahrel, Peter (2006). 1599:Programming in Fortran 1574:"What is a Delimiter?" 629:comma-separated values 160: 124: 83:comma-separated values 50: 47:comma-separated values 2308:Data File Metaformats 2278:Kalani, Amit (2004). 1852:Watt, Andrew (2003). 1074:whitespace delimiters 605:Position 28 (U+001C) 407:Programming languages 354:used to indicate XML 161: 125: 44: 1982:(December 1, 1975). 1937:(December 1, 1975). 1762:Meyer, Mark (2005). 1578:www.computerhope.com 1525:Tab-separated values 792:The use of ASCII 31 677:ASCII delimited text 657:cross-site scripting 600:Position 30 (U+001E) 595:Position 31 (U+001F) 278:Braces (also called 175:Declarative notation 138: 108: 2316:Eric Steven Raymond 1682:. Morgan Kaufmann. 889:### use escape char 825:regular expressions 617:Delimiter collision 612:Delimiter collision 123:{\displaystyle 1:4} 18:Delimiter collision 2219:Rhee, Man (2003). 2103:Ruby in a Nutshell 1470:"hidden" 1435:"hidden" 1404:"hidden" 1353:"hidden" 1096:regular expression 496:systems including 339:character literals 229:Bracket delimiters 220:flat-file database 156: 120: 51: 2193:978-0-596-52812-6 2167:978-3-540-41687-6 2049:978-0-596-52812-6 2023:978-0-937175-73-6 1893:978-1-931836-54-8 1867:978-0-672-32471-0 1833:978-0-596-10105-3 1799:978-0-306-45972-6 1773:978-0-7637-3832-7 1608:978-0-7190-0555-8 1505:Decimal separator 1028:are two that do. 810:escape characters 790: 789: 609: 608: 472:Control character 457: 456: 428:End of Statement 396: 395: 196:For example, the 81:in a sequence of 16:(Redirected from 2353: 2336:Pattern matching 2331:Markup languages 2295: 2293: 2275: 2266: 2264: 2252: 2242: 2236: 2234: 2216: 2210: 2205: 2199: 2197: 2179: 2173: 2171: 2154: 2148: 2146: 2129: 2123: 2117: 2097: 2091: 2090: 2072: 2066: 2061: 2055: 2053: 2035: 2029: 2027: 2007: 2001: 2000: 1990: 1976: 1970: 1969: 1963: 1955: 1945: 1931: 1925: 1924: 1922: 1921: 1905: 1899: 1897: 1879: 1873: 1871: 1859: 1849: 1843: 1837: 1818:Schwartz, Randal 1814: 1805: 1803: 1785: 1779: 1777: 1759: 1753: 1751: 1733: 1727: 1726: 1713:Programming Perl 1705: 1694: 1693: 1675: 1669: 1667: 1649: 1643: 1641: 1623: 1614: 1612: 1594: 1588: 1587: 1585: 1584: 1570: 1564: 1563: 1561: 1560: 1541: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1457:percent-encoding 1451: 1448: 1445: 1442: 1439: 1436: 1433: 1430: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1281: 1278: 1275: 1272: 1269: 1266: 1263: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1094:In specifying a 1038:content boundary 1032:Content boundary 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 982:For example, in 970: 967: 956: 953: 927: 924: 921: 890: 887: 884: 881: 871: 868: 865: 862: 804:Escape character 798:Record separator 775: 761:record separator 754: 733: 712: 684: 659:, respectively. 598:RECORD SEPARATOR 477: 420: 385: 382: 368: 365: 351: 348: 334: 331: 317: 314: 301: 298: 288: 275: 272: 255: 252: 239: 165: 163: 162: 157: 129: 127: 126: 121: 21: 2361: 2360: 2356: 2355: 2354: 2352: 2351: 2350: 2321: 2320: 2304: 2299: 2298: 2290: 2277: 2276: 2269: 2261: 2244: 2243: 2239: 2231: 2218: 2217: 2213: 2206: 2202: 2194: 2181: 2180: 2176: 2168: 2156: 2155: 2151: 2143: 2131: 2130: 2126: 2114: 2099: 2098: 2094: 2087: 2074: 2073: 2069: 2062: 2058: 2050: 2037: 2036: 2032: 2024: 2009: 2008: 2004: 1988: 1978: 1977: 1973: 1956: 1943: 1933: 1932: 1928: 1919: 1917: 1907: 1906: 1902: 1894: 1881: 1880: 1876: 1868: 1851: 1850: 1846: 1840:string literals 1834: 1816: 1815: 1808: 1800: 1787: 1786: 1782: 1774: 1761: 1760: 1756: 1748: 1735: 1734: 1730: 1723: 1707: 1706: 1697: 1690: 1677: 1676: 1672: 1664: 1651: 1650: 1646: 1638: 1625: 1624: 1617: 1609: 1596: 1595: 1591: 1582: 1580: 1572: 1571: 1567: 1558: 1556: 1543: 1542: 1538: 1533: 1515:Escape sequence 1496: 1488: 1487: 1484: 1481: 1478: 1475: 1472: 1469: 1466: 1463: 1453: 1452: 1449: 1446: 1443: 1440: 1437: 1434: 1431: 1428: 1422: 1421: 1418: 1415: 1412: 1409: 1406: 1403: 1400: 1397: 1380: 1379: 1376: 1373: 1370: 1367: 1364: 1361: 1358: 1355: 1352: 1349: 1346: 1333: 1297: 1289: 1283: 1282: 1279: 1276: 1273: 1270: 1267: 1264: 1261: 1232: 1227: 1226: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1170:# target string 1169: 1166: 1163: 1160: 1157: 1151: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1092: 1086: 1070: 1034: 1022:quote operators 1018: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 977: 972: 971: 968: 965: 958: 957: 954: 951: 941: 929: 928: 925: 922: 919: 908: 892: 891: 888: 885: 882: 879: 873: 872: 869: 866: 863: 860: 850:string literals 846: 844:Escape sequence 806: 773: 752: 740:group separator 731: 710: 679: 665: 637:vulnerabilities 614: 604: 599: 594: 401: 383: 380: 371:used to denote 366: 363: 349: 346: 332: 329: 322:string literals 315: 312: 299: 296: 287: 273: 270: 253: 250: 231: 216: 191: 183: 136: 135: 132:angled brackets 106: 105: 79:field delimiter 39: 28: 23: 22: 15: 12: 11: 5: 2359: 2357: 2349: 2348: 2343: 2338: 2333: 2323: 2322: 2319: 2318: 2303: 2302:External links 2300: 2297: 2296: 2288: 2267: 2259: 2237: 2229: 2211: 2200: 2192: 2174: 2166: 2149: 2141: 2124: 2112: 2092: 2085: 2067: 2056: 2048: 2030: 2022: 2002: 1971: 1935:ISO/TC 97/SC 2 1926: 1900: 1892: 1874: 1866: 1844: 1832: 1806: 1798: 1780: 1772: 1754: 1746: 1728: 1721: 1695: 1688: 1670: 1662: 1644: 1636: 1615: 1607: 1589: 1565: 1535: 1534: 1532: 1529: 1528: 1527: 1522: 1520:String literal 1517: 1512: 1507: 1502: 1495: 1492: 1462: 1427: 1396: 1374:anymore." 1345: 1332: 1329: 1301:ASCII armoring 1296: 1293: 1287: 1260: 1231: 1228: 1156: 1116: 1106:operations in 1085: 1082: 1069: 1066: 1062:Here documents 1033: 1030: 989: 976: 973: 964: 950: 940: 937: 918: 907: 904: 878: 859: 845: 842: 841: 840: 837: 834: 831: 828: 805: 802: 794:Unit separator 788: 787: 784: 782:unit separator 779: 776: 771: 767: 766: 763: 758: 755: 750: 746: 745: 742: 737: 734: 729: 725: 724: 721: 719:file separator 716: 713: 708: 704: 703: 700: 697: 694: 691: 678: 675: 664: 661: 613: 610: 607: 606: 603:FILE SEPARATOR 601: 596: 592:UNIT SEPARATOR 589: 588:ASCII/Unicode 585: 584: 581: 576: 571: 557:Classic Mac OS 553: 552: 546: 541: 536: 518: 517: 514: 509: 504: 490: 489: 486: 483: 480: 455: 454: 448: 445: 441: 440: 437: 434: 430: 429: 426: 425:String Literal 423: 400: 397: 394: 393: 386: 377: 376: 369: 360: 359: 352: 343: 342: 335: 326: 325: 318: 309: 308: 305:Angle brackets 302: 293: 292: 289: 284: 283: 280:curly brackets 276: 267: 266: 256: 247: 246: 243: 230: 227: 214: 190: 187: 182: 179: 155: 152: 149: 146: 143: 119: 116: 113: 36:digit grouping 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 2358: 2347: 2344: 2342: 2339: 2337: 2334: 2332: 2329: 2328: 2326: 2317: 2313: 2309: 2306: 2305: 2301: 2291: 2289:0-7897-2901-6 2285: 2281: 2274: 2272: 2268: 2262: 2260:1-58450-347-5 2256: 2251: 2250: 2241: 2238: 2232: 2230:0-470-85285-2 2226: 2222: 2215: 2212: 2209: 2204: 2201: 2195: 2189: 2185: 2178: 2175: 2169: 2163: 2159: 2153: 2150: 2144: 2142:0-9740945-2-8 2138: 2134: 2128: 2125: 2121: 2115: 2113:0-596-00214-9 2109: 2105: 2104: 2096: 2093: 2088: 2086:0-596-52937-6 2082: 2078: 2071: 2068: 2065: 2060: 2057: 2051: 2045: 2041: 2034: 2031: 2025: 2019: 2015: 2014: 2006: 2003: 1998: 1994: 1987: 1986: 1981: 1975: 1972: 1967: 1961: 1953: 1949: 1942: 1941: 1936: 1930: 1927: 1916: 1915: 1910: 1904: 1901: 1895: 1889: 1885: 1878: 1875: 1869: 1863: 1858: 1857: 1848: 1845: 1841: 1835: 1829: 1825: 1824: 1823:Learning Perl 1819: 1813: 1811: 1807: 1801: 1795: 1791: 1784: 1781: 1775: 1769: 1765: 1758: 1755: 1749: 1747:0-7923-7744-3 1743: 1739: 1732: 1729: 1724: 1722:0-596-00027-8 1718: 1714: 1710: 1704: 1702: 1700: 1696: 1691: 1689:1-55860-442-1 1685: 1681: 1674: 1671: 1665: 1663:0-596-00289-0 1659: 1655: 1648: 1645: 1639: 1637:90-5199-114-2 1633: 1630:. IOS Press. 1629: 1622: 1620: 1616: 1610: 1604: 1600: 1593: 1590: 1579: 1575: 1569: 1566: 1554: 1550: 1546: 1540: 1537: 1530: 1526: 1523: 1521: 1518: 1516: 1513: 1511: 1508: 1506: 1503: 1501: 1498: 1497: 1493: 1491: 1460: 1458: 1425: 1394: 1392: 1391:HTML entities 1387: 1385: 1343: 1341: 1336: 1330: 1328: 1326: 1322: 1317: 1315: 1311: 1307: 1302: 1294: 1292: 1286: 1258: 1255: 1253: 1249: 1245: 1241: 1237: 1236:Here document 1230:Here document 1229: 1154: 1114: 1111: 1109: 1105: 1101: 1097: 1091: 1083: 1081: 1079: 1075: 1067: 1065: 1063: 1059: 1055: 1051: 1047: 1042: 1039: 1031: 1029: 1027: 1023: 987: 985: 980: 974: 962: 948: 946: 938: 936: 934: 916: 914: 905: 903: 901: 897: 876: 857: 855: 851: 843: 838: 835: 832: 829: 826: 823: 819: 815: 814: 813: 811: 803: 801: 799: 795: 785: 783: 780: 777: 772: 769: 768: 764: 762: 759: 756: 751: 748: 747: 743: 741: 738: 735: 730: 727: 726: 722: 720: 717: 714: 709: 706: 705: 701: 698: 696:Unicode Name 695: 692: 690: 686: 685: 682: 676: 674: 671: 662: 660: 658: 654: 653:SQL injection 650: 646: 642: 638: 633: 630: 625: 623: 622:angle bracket 618: 611: 602: 597: 593: 590: 587: 586: 582: 580: 577: 575: 572: 570: 566: 562: 558: 555: 554: 551: 547: 545: 542: 540: 537: 535: 531: 527: 523: 520: 519: 515: 513: 510: 508: 505: 503: 499: 495: 492: 491: 487: 485:End of Record 484: 481: 479: 478: 475: 473: 469: 465: 461: 452: 449: 446: 443: 442: 438: 435: 432: 431: 427: 424: 422: 421: 418: 416: 412: 408: 404: 398: 391: 390:web templates 388:used in some 387: 379: 378: 374: 370: 362: 361: 357: 353: 345: 344: 340: 336: 328: 327: 323: 319: 311: 310: 306: 303: 295: 294: 290: 286: 285: 281: 277: 269: 268: 264: 260: 257: 249: 248: 244: 241: 240: 237: 234: 228: 226: 224: 221: 213: 211: 207: 203: 199: 194: 188: 186: 180: 178: 176: 172: 167: 150: 147: 144: 133: 117: 114: 111: 103: 99: 95: 90: 88: 84: 80: 76: 72: 68: 64: 60: 56: 48: 43: 37: 33: 19: 2279: 2248: 2240: 2220: 2214: 2203: 2183: 2177: 2157: 2152: 2132: 2127: 2119: 2106:. O'Reilly. 2102: 2095: 2076: 2070: 2059: 2039: 2033: 2012: 2005: 1984: 1974: 1939: 1929: 1918:. Retrieved 1912: 1903: 1883: 1877: 1855: 1847: 1822: 1789: 1783: 1763: 1757: 1740:. Springer. 1737: 1731: 1712: 1679: 1673: 1656:. O'Reilly. 1653: 1647: 1627: 1598: 1592: 1581:. Retrieved 1577: 1568: 1557:. Retrieved 1548: 1539: 1489: 1454: 1423: 1388: 1381: 1371:World!" 1337: 1334: 1318: 1314:doublequotes 1298: 1290: 1284: 1280:ENDOFHEREDOC 1268:ENDOFHEREDOC 1256: 1244:bash scripts 1233: 1152: 1112: 1104:substitution 1103: 1099: 1093: 1071: 1053: 1043: 1037: 1035: 1019: 981: 978: 959: 945:Visual Basic 942: 932: 930: 909: 893: 874: 870:### use \x22 856:, the code: 847: 807: 791: 699:Common Name 680: 669: 666: 634: 626: 624:character. 616: 615: 488:End of File 482:End of Field 463: 459: 458: 410: 406: 405: 402: 245:Description 235: 232: 217: 195: 192: 184: 168: 91: 78: 71:data streams 54: 52: 32:Word divider 1709:Wall, Larry 1384:well-formed 1312:, i.e. for 1295:ASCII armor 1078:indentation 451:end of line 436:singlequote 399:Conventions 259:Parentheses 242:Delimiters 206:end-of-line 171:data stream 94:mathematics 2325:Categories 1920:2023-02-10 1838:Describes 1583:2020-08-09 1559:2019-11-25 1531:References 1218:m!http://! 1200:m{http://} 1182:m@http://@ 1088:See also: 439:semicolon 198:CSV format 87:Morse code 63:plain text 59:characters 2198:page 472. 1464:<input 1429:<input 1398:<input 1347:<input 1321:Microsoft 1212:$ string1 1194:$ string1 1176:$ string1 1158:$ string1 1136:$ string1 1118:$ string1 1050:timestamp 663:Solutions 561:Apple DOS 550:Control-Z 494:Unix-like 204:, and an 154:⟩ 142:⟨ 98:operation 69:or other 55:delimiter 1991:. ITSCJ/ 1960:citation 1946:. ITSCJ/ 1820:(2005). 1553:Archived 1494:See also 1340:HTML tag 1310:escaping 1265:<< 1054:See e.g. 641:exploits 464:See also 411:See also 373:comments 181:Overview 2282:. Que. 2122:. p. 11 1331:Example 1325:ASP.NET 693:Symbol 632:files. 522:Windows 502:AmigaOS 444:Python 433:Pascal 210:records 2286:  2257:  2227:  2190:  2164:  2139:  2110:  2083:  2046:  2020:  1997:ISO-IR 1952:ISO-IR 1914:GitHub 1890:  1864:  1830:  1796:  1770:  1744:  1719:  1686:  1668:p. 319 1660:  1642:p. 141 1634:  1605:  1479:value= 1444:value= 1413:value= 1362:value= 1306:base64 702:Usage 687:ASCII 670:ad hoc 565:ProDOS 526:MS-DOS 453:(EOL) 261:. The 202:fields 2310:from 2147:p. 26 1989:(PDF) 1944:(PDF) 1500:CDATA 1485:/> 1473:name= 1467:type= 1450:/> 1438:name= 1432:type= 1419:/> 1407:name= 1401:type= 1377:/> 1368:Hello 1356:name= 1350:type= 1262:print 1209:print 1191:print 1173:print 1133:print 1100:match 1009:print 1000:print 991:print 966:print 952:print 920:print 880:print 861:print 583:none 569:GS/OS 516:none 498:macOS 468:ASCII 384:%> 381:<% 350:?> 347:<? 223:table 102:colon 75:comma 2284:ISBN 2255:ISBN 2225:ISBN 2188:ISBN 2162:ISBN 2137:ISBN 2108:ISBN 2081:ISBN 2044:ISBN 2018:ISBN 1993:IPSJ 1966:link 1948:IPSJ 1888:ISBN 1862:ISBN 1828:ISBN 1794:ISBN 1768:ISBN 1752:p. 3 1742:ISBN 1717:ISBN 1684:ISBN 1658:ISBN 1632:ISBN 1603:ISBN 1252:perl 1250:and 1248:ruby 1142:m/+/ 1108:Perl 1102:and 1058:MIME 1048:, a 1046:UUID 1026:Ruby 984:Perl 933:both 913:Perl 854:Perl 822:Perl 655:and 649:HTML 647:and 639:and 544:CRLF 534:CP/M 530:OS/2 300:> 297:< 263:Lisp 104:in " 34:and 2314:by 1999:-6. 1954:-1. 1455:Or 1323:'s 1240:PHP 1076:or 1064:). 902:). 770:31 749:30 728:29 707:28 689:Dec 645:SQL 574:Tab 539:Tab 507:Tab 474:). 417:). 282:). 166:). 134:in 92:In 2327:: 2270:^ 1995:. 1962:}} 1958:{{ 1950:. 1911:. 1809:^ 1698:^ 1618:^ 1576:. 1551:. 1547:. 1459:: 1316:. 1246:, 1242:, 1234:A 1215:=~ 1197:=~ 1179:=~ 1139:=~ 1110:. 1060:, 1056:, 1036:A 986:: 915:: 898:, 579:CR 567:, 563:, 559:, 532:, 528:, 524:, 512:LF 500:, 470:, 466:, 413:, 367:*/ 364:/* 358:. 341:. 324:. 307:. 212:: 173:. 89:. 65:, 53:A 2292:. 2263:. 2233:. 2196:. 2170:. 2145:. 2116:. 2089:. 2052:. 2026:. 1968:) 1923:. 1896:. 1870:. 1842:. 1836:. 1802:. 1776:. 1750:. 1725:. 1692:. 1666:. 1640:. 1611:. 1586:. 1562:. 1271:; 1221:; 1203:; 1185:; 1167:; 1161:= 1145:; 1127:; 1121:= 1015:; 1006:; 997:; 926:; 886:; 867:; 774:␟ 753:␞ 732:␝ 711:␜ 462:( 409:( 333:' 330:' 316:" 313:" 274:} 271:{ 254:) 251:( 151:b 148:, 145:a 118:4 115:: 112:1 38:. 20:)

Index

Delimiter collision
Word divider
digit grouping

comma-separated values
characters
plain text
mathematical expressions
data streams
comma
comma-separated values
Morse code
mathematics
operation
colon
angled brackets
data stream
Declarative notation
CSV format
fields
end-of-line
records
flat-file database
table
Parentheses
Lisp
curly brackets
Angle brackets
string literals
character literals

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.